package com.fanshe.java2;

import com.fanshe.java1.Person;
import org.junit.Test;

import java.lang.reflect.Field;

/**
 * 获取当前运行时类的属性结构
 */
public class FieldTest {

    @Test
    public void test1() {

        Class clazz = Person.class;

        //getFields():获取当前运行时类及其所有父类声明为public访问权限的属性
        Field[] fields = clazz.getFields();

        for(Field field : fields) {
            System.out.println(field);
        }

        System.out.println();

        //getDeclaredFields(): 获取当前运行时类中声明的所有属性，不包含父类中声明的属性
        Field[] declaredFields = clazz.getDeclaredFields();
        for(Field field : declaredFields) {
            System.out.println(field);
        }
    }

}
